// pages/personal_information/avatarInput/avatarInput.js
Page({
    data: {
      avatarUrl: '', // 用于预览的头像 URL
    },
  
    // 选择图片
    onChooseImage() {
      wx.chooseMedia({
        count: 1, // 只能选择一张图片
        mediaType: ['image'], // 只允许选择图片
        sizeType: ['original', 'compressed'], // 可以选择原图或压缩图
        sourceType: ['album', 'camera'], // 可以从相册或拍照获取
        success: (res) => {
          if (res.tempFiles && res.tempFiles.length > 0) {
            const filePath = res.tempFiles[0].tempFilePath; // 获取选中图片的路径
            this.setData({
              avatarUrl: filePath, // 设置预览的图片路径
            });
          } else {
            wx.showToast({
              title: '未选择图片',
              icon: 'none',
            });
          }
        },
        fail: () => {
          wx.showToast({
            title: '图片选择失败',
            icon: 'none',
          });
        },
      });
    },
  
    // 上传图片
    uploadImage() {
      const { avatarUrl } = this.data; // 获取选中的图片路径
      if (!avatarUrl) {
        wx.showToast({
          title: '请先选择图片',
          icon: 'none',
        });
        return;
      }
  
      wx.showLoading({
        title: '上传中...',
      });
  
      // 从缓存中读取userId
      const userId = wx.getStorageSync('userId');
  
      wx.uploadFile({
        url: 'http://127.0.0.1:3000/uploadAvatar', // 替换为你的后端接口地址
        filePath: avatarUrl,
        name: 'avatar', // 与后端字段名一致
        formData: {
          userId, // 传递用户 ID
        },
        header: {
          'Content-Type': 'multipart/form-data',
        },
        success: (res) => {
          wx.hideLoading();
          const data = JSON.parse(res.data); // 解析后端返回的数据
  
          if (data.avatarUrl) {
            wx.setStorageSync('avatarUrl', data.avatarUrl); // 更新缓存
            wx.showToast({
              title: '上传成功',
              icon: 'success',
              duration: 1500, // 提示持续时间
            });
  
            // 延时确保提示显示完成后再返回
            setTimeout(() => {
              wx.navigateBack(); // 返回上一界面
            }, 1500);
          } else {
            wx.showToast({
              title: '上传失败',
              icon: 'none',
            });
          }
        },
        fail: () => {
          wx.hideLoading();
          wx.showToast({
            title: '上传失败',
            icon: 'none',
          });
        },
      });
    },
  });
  